package utils

import "time"

func nonNull(param any) bool {
	return !isNull(param)
}

// isNull 判断参数是否为 nil或者默认值
func isNull(param any) bool {
	if param == nil {
		return true
	}
	switch param.(type) {
	case int:
		if param.(int) == 0 {
			return true
		} else {
			return false
		}
	case string:
		if param.(string) == "" {
			return true
		} else {
			return false
		}
	case bool:
		if param.(bool) == false {
			return true
		} else {
			return false
		}
	case float64:
		if param.(float64) == 0.0 {
			return true
		}
	case float32:
		if param.(float32) == 0.0 {
			return true
		} else {
			return false
		}
	case time.Time:
		if param.(time.Time).IsZero() {
			return true
		} else {
			return false
		}
	case byte:
		if param.(byte) == 0 {
			return true
		} else {
			return false
		}
	case []byte:
		if param.([]byte) == nil {
			return true
		} else {
			return false
		}
	case map[any]any:
		if param.(map[any]any) == nil {
			return true
		} else {
			return false
		}
	}
	return false
}
